cmake_minimum_required(VERSION 2.8.12)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_C_STANDARD 99)

project("Project64-core")

add_library(Project64-core STATIC
    AppInit.cpp
    logging.cpp
    Settings.cpp
    MemoryExceptionFilter.cpp
    Multilanguage/Language.cpp
    Settings/LoggingSettings.cpp
    Settings/RecompilerSettings.cpp
    N64System/Enhancement/Enhancement.cpp
    N64System/Enhancement/Enhancements.cpp
    N64System/Enhancement/EnhancementFile.cpp
    N64System/Enhancement/EnhancementList.cpp
    N64System/Interpreter/InterpreterOps.cpp
    N64System/MemoryHandler/AudioInterfaceHandler.cpp
    N64System/MemoryHandler/CartridgeDomain1Address1Handler.cpp
    N64System/MemoryHandler/CartridgeDomain1Address3Handler.cpp
    N64System/MemoryHandler/CartridgeDomain2Address1Handler.cpp
    N64System/MemoryHandler/CartridgeDomain2Address2Handler.cpp
    N64System/MemoryHandler/DisplayControlRegHandler.cpp
    N64System/MemoryHandler/ISViewerHandler.cpp
    N64System/MemoryHandler/MIPSInterfaceHandler.cpp
    N64System/MemoryHandler/PeripheralInterfaceHandler.cpp
    N64System/MemoryHandler/PifRamHandler.cpp
    N64System/MemoryHandler/RDRAMInterfaceHandler.cpp
    N64System/MemoryHandler/RDRAMRegistersHandler.cpp
    N64System/MemoryHandler/RomMemoryHandler.cpp
    N64System/MemoryHandler/SerialInterfaceHandler.cpp
    N64System/MemoryHandler/SPRegistersHandler.cpp
    N64System/MemoryHandler/VideoInterfaceHandler.cpp
    N64System/Mips/Disk.cpp
    N64System/Mips/GBCart.cpp
    N64System/Mips/MemoryVirtualMem.cpp
    N64System/Mips/Mempak.cpp
    N64System/Mips/R4300iInstruction.cpp
    N64System/Mips/Register.cpp
    N64System/Mips/Rumblepak.cpp
    N64System/Mips/Transferpak.cpp
    N64System/Mips/SystemEvents.cpp
    N64System/Mips/SystemTiming.cpp
    N64System/Mips/TLB.cpp
    N64System/Recompiler/CodeBlock.cpp
    N64System/Recompiler/CodeSection.cpp
    N64System/Recompiler/ExitInfo.cpp
    N64System/Recompiler/FunctionInfo.cpp
    N64System/Recompiler/FunctionMap.cpp
    N64System/Recompiler/JumpInfo.cpp
    N64System/Recompiler/LoopAnalysis.cpp
    N64System/Recompiler/Recompiler.cpp
    N64System/Recompiler/RecompilerOps.cpp
    N64System/Recompiler/RecompilerMemory.cpp
    N64System/Recompiler/RegBase.cpp
    N64System/Recompiler/Aarch64/Aarch64ops.cpp
    N64System/Recompiler/Aarch64/Aarch64RecompilerOps.cpp
    N64System/Recompiler/Aarch64/Aarch64RegInfo.cpp
    N64System/Recompiler/Arm/ArmOps.cpp
    N64System/Recompiler/Arm/ArmRecompilerOps.cpp
    N64System/Recompiler/Arm/ArmRegInfo.cpp
    N64System/Recompiler/x64-86/x64ops.cpp
    N64System/Recompiler/x64-86/x64RecompilerOps.cpp
    N64System/Recompiler/x64-86/x64RegInfo.cpp
    N64System/Recompiler/x86/x86ops.cpp
    N64System/Recompiler/x86/x86RecompilerOps.cpp
    N64System/Recompiler/x86/x86RegInfo.cpp
    N64System/SaveType/Eeprom.cpp
    N64System/SaveType/FlashRam.cpp
    N64System/SaveType/Sram.cpp
    N64System/FramePerSecond.cpp
    N64System/N64System.cpp
    N64System/N64Rom.cpp
    N64System/Profiling.cpp
    N64System/SpeedLimiter.cpp
    N64System/SystemGlobals.cpp
    N64System/EmulationThread.cpp
    N64System/N64Disk.cpp
    Plugins/AudioPlugin.cpp
    Plugins/GFXplugin.cpp
    Plugins/ControllerPlugin.cpp
    Plugins/RSPPlugin.cpp
    Plugins/PluginBase.cpp
    Plugins/Plugin.cpp
    RomList/RomList.cpp
    Settings/SettingType/SettingsType-Application.cpp
    Settings/SettingType/SettingsType-ApplicationIndex.cpp
    Settings/SettingType/SettingsType-ApplicationPath.cpp
    Settings/SettingType/SettingsType-GameSetting.cpp
    Settings/SettingType/SettingsType-GameSettingIndex.cpp
    Settings/SettingType/SettingsType-RelativePath.cpp
    Settings/SettingType/SettingsType-RDB.cpp
    Settings/SettingType/SettingsType-RDBCpuType.cpp
    Settings/SettingType/SettingsType-RDBOnOff.cpp
    Settings/SettingType/SettingsType-RDBRamSize.cpp
    Settings/SettingType/SettingsType-RDBSaveChip.cpp
    Settings/SettingType/SettingsType-RDBUser.cpp
    Settings/SettingType/SettingsType-RomDatabase.cpp
    Settings/SettingType/SettingsType-RomDatabaseIndex.cpp
    Settings/SettingType/SettingsType-RomDatabaseSetting.cpp
    Settings/SettingType/SettingsType-SelectedDirectory.cpp
    Settings/SettingType/SettingsType-TempBool.cpp
    Settings/SettingType/SettingsType-TempNumber.cpp
    Settings/SettingType/SettingsType-TempString.cpp
    Settings/DebugSettings.cpp
    Settings/GameSettings.cpp
    Settings/N64SystemSettings.cpp)

add_definitions(-DANDROID)

target_link_libraries(Project64-core)
